Financial documents examination methods and systems

ABSTRACT

A user is able to extract financial data, particularly tables, from a document. The table is stored and the user can compare the data in this table with data from similar tables from previous documents. The user can see how financial data has changed historically by looking only at financial tables from the same type of document, for example, only balance sheet tables from annual reports for a specific public company, over many years, and see how the values have changed or whether any new categories or types of data have been added or deleted. From the time series of financial data, the user can gain real intelligence into an entity&#39;s financial health.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 18/059,588, filed Nov. 29, 2022, which is acontinuation application of U.S. patent application Ser. No. 17/837,526,filed Jun. 10, 2022, which is a continuation application of U.S. patentapplication Ser. No. 15/729,645, filed Oct. 10, 2017, which claimspriority to U.S. provisional application No. 62/405,828, filed Oct. 7,2016, which are incorporated herein by reference for all purposes.

BACKGROUND OF THE INVENTION 1. Field of the Invention

The present invention relates to financial software. More specifically,the invention relates to software for analyzing similar financial datafrom multiple documents over time thereby gaining insights into thefinancial data.

2. Description of the Related Art

Current financial and corporate document examination software platformslack efficient and intuitive features for their users, and do notpossess the ability to process unstructured financial data into coherentstructures. The user experience for many of these tools do notfacilitate quick and in-depth analysis of financial and corporate data,particularly in the instance where such data are contained in free formtext, or in data tables that are specific to an industry or a singlecompany. Users are therefore prevented from gaining meaningful insightsinto what the numbers and statements contained in these financial andcorporate documents mean. There is, effectively, an“intelligence-gathering” limit that is reached with current tools. Whatis needed is a platform for facilitating analysis of similar andsometimes unstructured financial data over a period of time so thatchanges and trends can be easily detected.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a high-level diagram of a time series feature in accordancewith one embodiment;

FIG. 2 shows a financial table with a column of marks along the leftside for each row and a row of marks at the top of the table;

FIG. 3 is a screenshot showing how auditing modifies the table on theright pane to display a source table from an original document inaccordance with one embodiment;

FIG. 4 is a block diagram showing a high-level view of similar tables;

FIG. 5 shows a screenshot when a user clicks Similar Tables in adocument and showing tables from five years of quarterly filings andpresenting in a split screen view;

FIG. 6 is a screenshot of one feature of a similar tables tool inaccordance with one embodiment;

FIG. 7 is a screenshot of a stitched tables feature in accordance withone embodiment;

FIG. 8 is a screenshot of a melted tables feature in accordance with oneembodiment;

FIG. 9 is a flow diagram of a process of pre-processing a document andcreating dictionaries for tables in the document;

FIG. 10 is a flow diagram of a process of creating a time series oftables in accordance with one embodiment;

FIG. 11 is a flow diagram showing options of what can be viewed throughthe platform user interface and exported into a spreadsheet inaccordance with one embodiment;

FIG. 12 is a block diagram of a system of the financial documentintelligence platform in accordance with various embodiments; and

FIG. 13 is a block diagram illustrating an example of a computer systemcapable of implementing various processes in the described embodiments;

SUMMARY OF THE EMBODIMENTS

In one aspect of the invention, a method of extracting financial datafrom a document and analyzing similar financial data from olderdocuments to enhance understanding of the document is described. Afinancial document intelligence system receives a document containingunstructured data. Tables in the document are identified and extractedusing a parsing engine. Each table is converted to a dictionary. Thesystem then verifies that data in a table is financial data and, onceverified, the dictionaries for valid financial data tables are stored. Aseries of stitched tables, also referred to as a time series, is createdfor a selected table using a row-based, “next best” matching algorithm.Tables that are similar to the selected table with respect to type andschema are identified and used to create a time series for the selectedtable. This time series allows users to easily see how certain financialdata has changed over time.

DETAILED DESCRIPTION

Example embodiments of methods and systems for examining and analyzingfinancial and corporate documents are described. These examples andembodiments are provided solely to add context and aid in theunderstanding of the invention. Thus, it will be apparent to one skilledin the art of software and financial document processing that thepresent invention may be practiced without some or all of the specificdetails described herein. In other instances, well-known concepts havenot been described in detail in order to avoid unnecessarily obscuringthe present invention. Although these embodiments are described insufficient detail to enable one skilled in the art to practice theinvention, these examples, illustrations, and contexts are not limiting,and other embodiments may be used and changes may be made withoutdeparting from the spirit and scope of the invention.

One aspect of the present invention is the ability to perform what isreferred to as time series and table extraction. Time series is afunction that allows users to select line item rows from a document orHTML/XBRL table and automatically retrieve historical values of thoseline items from previous documents. A high-level diagram of the timeseries feature is shown in FIG. 1 . The user selects either a specificrow from a table to be extracted or the entire table. In one embodiment,the selection of a row can also be done automatically by the software.Logic behind the software finds that particular table in previousversions of the document and extracts those lines and builds what isreferred to as a composite table.

The user interface for a time series table allows the user to perform anaudit easily by enabling the user to go back to the table from which thehighlighted figure originated. In one embodiment, the system canauto-update the composite table whenever a new table is created.Referring now to FIGS. 2 and 3 , first FIG. 2 shows a table with acolumn of marks along the left side for each row and a row of marks atthe top of the table. In one embodiment, line items from the originaltable become columns in the composite table. Each value can be auditedby clicking on the table row on the left side of the screen. Referringto FIG. 3 , auditing modifies the table on the right pane to display thesource table from the original document. The user can also edit theresulting table on the left. The entire table may be exported to aspreadsheet or saved in another suitable format. Additionally, theresulting table can be set to auto-update with new values when newversions of the document are made available.

In one embodiment, the time series and table extraction features areimplemented in the following manner. As a financial or other type ofdocument is received in the system, it goes through variouspreprocessing steps. One of the key stages involves identification oftabular data within the documents. The tabular data is of particularsignificance as the tables provide a quick structured summary of datamentioned in different places with the document.

In the next step, each table is fed to a parsing engine which creates atext skeleton of the table and divides it into different parts such asheaders, data headers, terms and values. For example, the tables in SECfilings are highly non-standardized, consequently the system goesthrough a number of preprocessing steps to be able to correctly map aterm value to its corresponding column value. In case the table containsdata for different periods, the value of each term is identified andsaved for each period.

This skeleton data of each table is then stored in a database from whereit can be quickly fetched on demand. The system may maintain theserecords for all the historical 10-Qs, 10-Ks, 8-K Earnings, XBRLdocuments and other SEC filings.

Since the data reported in the filings remain similar from quarter toquarter, the corresponding tables can be identified and matched acrossthe document. The identification logic of the present invention matchesthe tables on the basis of terms used in the table. Since the order ofthe tables often varies across documents, and is particularly differentin 10-Ks and 10-Qs, the term matching algorithm results in a good match.

As the user opens a document in the platform, the user has an option touse the time series and table extraction functions on each identifiedtable. The table extraction function identifies the most similar tablefound in each previous document, based on the term matching algorithm,and returns them.

Once the results of a time series extraction are returned, they arepresented within a table for the user. The user may click on each valueand on the right side of the screen, an auditing pane loads thecorresponding table from where the value was pulled and is displayed.Extracted valued are color coded to make identifying them within largetables easy. This allows a user to quickly audit the entire table toensure the values that our algorithm has produced are correct. Ifmultiple tables were returned for the document/value that the user isauditing, the additional tables are displayed below. The user can easilyreplace values by clicking in any portion of the table and typing thenew value or by selecting other matched values from a dropdown menu inthe auditing pane.

Users are normally looking for quarterly values. However, often timesvalues reported within filings are for entire fiscal years or quartersummations of the year to date (3 months, 6 months, 9 months, etc.).Time series allows users to quickly transform these summation values toquarterly values for the entire table by checking specific boxes. If asummation transformation is required only for a single document/value,the user can simply click the YTD box to the left of that value. Oncethe user is satisfied with the output of the table, they have the optionto export the entire table to a spreadsheet. They may also save theoutput of the time series extraction on the system or open it within avisualization engine, described below.

The time series function allows the user to select a number of termsfrom the source table. The function identifies the top three similartables in each previous document (on the basis of the term matchalgorithm) and then looks for the exact term as the user has requested.If the term is found, that numerical value which corresponds to thelatest date in the table is fetched. The output of the time seriesfunction is the list of quarter-value pair for the term across documentsfor the previous five years. The user has an option to load the valuesfor older documents if the user wants the previous data.

A term may not be used in exactly the same way as in the previous table.This could be because the company has changed the nomenclature for thereported term. For example, a company which stated reporting “TotalMembers” of its service initially may change it to “Total Membership.”

For such cases, the system first returns an empty value for the missingquarter. The system then goes back to find the similar tables to thesource table in the document corresponding to the missing quarter. Thesystem then finds other terms in these similar tables, which are similarto the term that the user has requested. If a term is matched with ahigh degree of surety, the system finds the corresponding term value forthe latest date in the table and returns it with a warning that theactual term and value may be different.

The similar tables feature allows a user to click a button above adocument table to load up the same table from previous filings. Ahigh-level view of similar tables is shown in FIG. 4 . For example, auser may click Similar Tables on the Income Statement table in acompany's quarterly filing and the tool automatically fetches the IncomeStatement table from five years of quarterly filings and presents themto the user in a split screen view. This is shown in FIG. 5 .

The similar tables tool identifies these similar, historical tables byapplying an algorithm to take the contents of the original table andstatistically compare them to the contents of all tables in historicalfilings of the same type. This is shown in FIG. 6 . The table with thehighest statistical match is presented as the matched similar table.Once the tool has presented all the similar tables to a user, the usermay export the set of tables to a spreadsheet or perform advancedanalysis/export through time series, stitched tables and melted tables,features that are described below.

Another feature of the invention is referred to as stitched tables. Thistool generalizes the concepts of time series and similar tablesextraction to join entire tables processed at once instead of on aline-by-line basis. Line items that do not match are preserved insequence rather than discarded. Duplicate line items are separatelyhandled. This method has the advantage of being computationallyefficient for large volumes of tables. It also has the advantage ofhandling, in a user-friendly way, constant changes in financialreporting as business needs evolve over time, for example, due toreorganizations, acquisitions, and new/discounted disclosures. Anexample is shown in FIG. 7 .

A feature related to stitched tables may be referred to as meltedtables. These tables generalize the concept of stitched tables toencompass multi-dimensional tables where time is not represented in asingle column but rather is represented by the entire table. Columns arereshaped into rows and stitched together with their corollaries acrosstime. This has particular applications in a variety of modelingcontexts, for example, from Debt Maturity Schedules to property-levelownership breakdowns. An example is shown in FIG. 8 .

Methods and systems for gathering intelligence and understandingfinancial documents are described in the figures below. FIG. 9 is a flowdiagram of a process of pre-processing a document and creatingdictionaries for tables in the document. At step 902 the system receivesa file of some type of document. The file can come from one of a widerange of sources and may not necessarily be a financial document. Forexample, it can be a PDF, a PowerPoint document, user notes, an Excelspreadsheet, and so on. In typical cases, the document is some type offinancial document such as a 10-K, 10-Q, an annual report, or some othertype of conventional financial document for a public company, but maynot be.

The general goal is to extract financial data formatted as tables from acorpus of documents containing unstructured data. The system is acomputing system that executes software provided and managed by athird-party financial intelligence service provider. The document isinputted, in most cases, by a client of the service provider. After thefile is entered, the first operation by the system is converting it to asuitable format for further processing. In one embodiment, the format isHTML. In other embodiments, different formats can be utilized.

At step 904 the system identities tables in the document and extractsthem, it separates the tables from the rest of the non-table (ornon-tabular) data. This is done by a parsing engine in the system and,in one embodiment, may be implemented by searching for specific tags,such as “TABLE”. In other implementations, the parsing engine may searchunstructured text for keywords associated with financial data. Some ofthe tables may not contain financial data or numerical data, in otherwords, they may not be financial tables. For example, a table maycontain only text data, such as names, locations, product names, and soon. However, at step 904, in one embodiment, these tables are stillextracted. In addition, the parsing engine is also able to identify andinclude footnotes. These footnotes may be structurally part of the tableor contiguous to the table. The parsing engine is also capable ofidentifying and processing multi-columnar tables, rendering complexlatitudinal (wide) data structures into simplified longitudinal (long)data structures which may be more easily stored and manipulatedprogrammatically.

At step 906, the system converts each extracted table to what isreferred to as a dictionary of table information. In one embodiment, thedictionary includes table data values, number of columns, headers,source document location, relationships between data and column headers(e.g., from which column did the data in this row come from), and otherdata. A sample of a dictionary is “docid”: “123abc”, “currency”: USD,“section;” “Calculation of Net Leverage Ratio”, “period:” “Q1, 2017”,value: 18890, field: calculation of net leverage ratiototal debt, alias:“net_leverage_ratio: calculation . . . ” subsection, table: Net LeverageRatio, tickler: amt, unit: null.

Step 906 is done for each table extracted from the source document. Onceall the tables have been converted to dictionaries, the system scans orexamines each table, more specifically, the dictionary for each table,to determine if it contains valid financial data at step 908. Forexample, the system may look for null values or all text data, examplesof two indicators that the table does not contain financial data, theonly data relevant to embodiments of the present invention. In oneembodiment, the system uses what is referred to as identification logicto spot valid financial tables. For example, it can look for specificfinancial terms that are commonly used, for instance, as column headers,or look for actual numerical data. This is done for each dictionarycreated at step 906.

At step 910, the system stores the dictionary for each valid financialdata table. The other dictionaries and tables are discarded. Thedictionaries and financial tables are written to a central database.From the database, the tables may eventually be displayed in the userinterface of the system. For example, a valid financial data table fromthe source document can be displayed to the user. As described below inFIG. 10 , if there is a history of tables that are similar to the tableselected by the user, a stitched time series of these similar tableswith the selected table may be displayed to the user. One version of theuser interface of the system also simply displays the previous tablesside by side next to the source table thereby enabling rapid, paginatedreview. The first stage of the document pre-processing stage is completeafter step 910.

FIG. 10 is a flow diagram of a process of creating a time series oftables for a selected table in accordance with one embodiment. As noted,this may also be referred as stitching a currently selected table withsimilar tables from previously submitted documents from the user. Atstep 1002 the system begins by identifying a current table (i.e., atable selected by the user) for a current entity. The dictionary for theselected table is retrieved from the database. The term “entity” canrefer to anything for which the service provider has data; it providesan umbrella context for the table. It can be characterized as the top ofa schema for a corpus of documents, where all tables (and other data)are subordinate to the entity. For example, an entity could be a privatecompany, a public company's stock ticker, an institution, such theFederal Reserve Bank, a government agency, and so on. As noted, it canbe anything for which table data has been collected and stored.

At step 1004 the system identifies tables from previous documents forthat entity that are similar to the current table. The system performsthis operation by using data contained in the dictionary for theselected table. In one embodiment, identifying similar tables isperformed by looking at table names (e.g., “Balance Sheet”) fromprevious documents, annual reports, for the current entity.

In one embodiment, this may be done by performing a row-based, “nextbest” matching algorithm. The “next best match” algorithm can bedescribed as matching the list of rows for the currently selected tableagainst the list of rows for all other tables in previous documents. Thebest match would be the previous tables for which the number of matchedrows is closest to the total number of rows of the currently selectedtable. At this stage, the system has identified and verified tables thatare essentially the same as the current table but from older documents(e.g., from last month, last quarter, last fiscal year, etc.).

It may not be the case that 100% of the rows in all the tables match. Insome cases, perhaps because of a merger between two companies or aninternal accounting methodology update where field names change, theremay be more than a few non-matching row pairs. In any of thesescenarios, at step 1006, the non-matching rows are flagged and includedin the tables: they are not discarded by the system. In one embodiment,the non-matching rows are moved to the bottom of the table and displayedin a different color from the matching rows. If there is more than acertain ratio of matching to non-matching rows or there is over apre-determined percentage of non-matching rows, the tables are flaggedor marked for manual review, described in step 1010 below.

The operation performed by the system in step 1006 creates amulti-table, row-matched schema for the current table. As noted, thismay also be described as a stitched time series of tables for thecurrent table. At step 1008 the row mapping, or stitched table, schemais stored in a database as the default stitching schema for that table.Subsequent user modifications may create a new schema associated with aspecific user identifier. As mentioned, the user can modify the defaultschema by moving non-matching flagged rows back to their original placein the table, requesting that the system merge the flagged row with thenon-flagged rows, moving them to wherever they want them to be in thetable (e.g., at the top), or can discard them.)

As noted, at step 1008 the system-created, default stitched tables arestored in the dictionary of the current table. Both user-defined andsystem schemas can be configured for alerts so that when a new table isreleased that matches the saved schema, the new data is automaticallyadded to the stored stitched tables and the user is notified of theaddition.

At step 1010 the service provider via the platform addresses or manuallymodifies the schema of tables that were marked or somehow distinguishedas being heavily flagged tables, tables that have over a pre-determinedpercentage of flagged rows. A table can also be brought to the attentionof the service provider by the user; the user may have a reason orsimply want to service provider to audit the table. The tables that areflagged earlier as having too many non-matching rows are still stitched,but may be characterized as insufficiently stitched tables. As such,they are manually reviewed or audited by the service provider who hasadvanced tools and user interfaces for doing so. During the audit,corrections and updates are made and the insufficiently stitched tablesare completed and made into an acceptable time series and stored withthe current table in the database and can be displayed or exported, asdescribed below.

Once the pre-processing and time series creation are complete, the userhas options with regard to what can be viewed through the platform'suser interface and exported into a spreadsheet. These options are shownin FIG. 11 . One option is that the user can elect to see only thecurrent table on the screen. This is shown in box 1102. The user canthen export the current table to an external document, such as aspreadsheet at box 1108. This is the table that was selected by the userat the beginning of FIG. 9 and is the table without any stitched tables.Another option is the user can click through to each cell of the timeseries and stitched tables and have the source table load up in a popupor a window so that the values of the time series can be audited.Another option is the user can apply filters to the values of the timeseries and stitched tables to handle instances where a reported numberis a year to date number and must be adjusted to match the quarter. Atable stitching engine, described below, may determine this in manycases by using an algorithm that uses document type and table headers.The system also provides filters that allow year over year values to beadded within the table.

At step 1104 the system receives selection input for displaying thedefault stitched tables as described in FIG. 10 . As noted, the defaultcurrent table may have flagged (unmatched) rows at the bottom of thetable (or wherever the system designer decides the default locationshould be) and may be shown in a different color. The default table isshown with its time series of similar tables. The default current tableand the stitched tables can be exported into an external spreadsheet,again as shown in step 1108. As described above, the user can modify thedefault table, for example, by moving the flagged rows to a differentlocation in the table or deleting them. This modified table and thestitched tables can be selected by the user and the system will displaythe modified table at step 1106. These tables can also be exported intoa spreadsheet and utilized by the user outside of the system. In oneembodiment, the dictionary for the table, whether the original (step1102), default stitched (1104) or modified (1106), is used to displaythe tabulated data and export into an external document.

FIG. 12 is a block diagram of a system of the financial documentintelligence platform in accordance with various embodiments. Theplatform may be implemented as software executing on a user (e.g., acustomer of the financial document intelligence service provider) systemor may be operated by the service provider and offered as a service tousers. In either case, the platform has various components, modules, anddatabases most of which have been referenced above and whosefunctionality has been shown in the flow diagrams.

A corpus of documents 1202 is inputted into a system or platform 1204.The documents are input one by one and the flow diagrams above explainthe steps taken when one document is inputted, such as at step 902, andwhen one table is selected, as in step 1002. However, a customer islikely to have inputted numerous documents over a period of time. Asdescribed above, the only way to obtain a stitched time series of tablesis for a user to input numerous documents over time, that is, to have ahistory of similar documents in the system.

In financial document intelligence system 1204, a document is receivedby a document conversion engine 1206. This module converts the document,which may be any type of document and may not even be a financialdocument and have no tables in it, to HTML. A table extraction engine1208 identifies and pulls any financial tables from the document. In oneembodiment, module 1208 is also responsible for converting each table toa dictionary. As described above, several pre-processing steps occur toensure that only the dictionaries of valid financial tables areconverted to dictionaries.

Component 1210 is a database used by system 1204 to store all dataneeded for creating stitched tables. It stores, among other types ofdata, dictionaries of tables, user data, and table and row data. A tablestitching engine 1212 creates the stitched tables. It takes a currenttable for an entity and, if historical data is available for that tableand entity, creates the stitched tables. Engine 1212 performs many ofthe steps in FIG. 10 , such as identifying and verifying historicaltables that are similar in type and schema to the current table. Thislogic is referred to as identification logic above. It also performs theoperations of the row-by-row matching between all the verified similartables, flagging of non-matching rows, and creating the time series. Itexecutes the row-matching algorithm. Once the table stitching iscomplete, data for the current table is stored in the table dictionaryand stored in database 1210.

Engine 1212 is in communication with a timeseries user interface module1214 where the user can display various versions of the current table asdescribed in FIG. 11 . The user can preview the current table, thedefault stitched tables, or the modified stitched tables. An exportengine module 1216 is used to export tables to a spreadsheet for theuser if the export feature is selected.

FIG. 13 is an illustration of a data processing system 1300 depicted inaccordance with some embodiments and as shown in FIG. 12 . Dataprocessing system 1300 may be used to implement one or more computersused in a controller or other components of various systems describedabove. In some embodiments, data processing system 1300 includescommunications framework 1302, which provides communications betweenprocessor unit 1304, memory 1306, persistent storage 1308,communications unit 1310, input/output (I/O) unit 1312, and display1314. In this example, communications framework 1302 may take the formof a bus system.

Processor unit 1304 serves to execute instructions for software that maybe loaded into memory 1306. Processor unit 1304 may be a number ofprocessors, a multi-processor core, or some other type of processor,depending on the particular implementation.

Memory 1306 and persistent storage 1308 are examples of storage devices1316. A storage device is any piece of hardware that is capable ofstoring information, such as, for example, without limitation, data,program code in functional form, and/or other suitable informationeither on a temporary basis and/or a permanent basis. Storage devices1316 may also be referred to as computer readable storage devices inthese illustrative examples. Memory 1306, in these examples, may be, forexample, a random access memory or any other suitable volatile ornon-volatile storage device. Persistent storage 1308 may take variousforms, depending on the particular implementation. For example,persistent storage 1308 may contain one or more components or devices.For example, persistent storage 1308 may be a hard drive, a flashmemory, a rewritable optical disk, a rewritable magnetic tape, or somecombination of the above. The media used by persistent storage 1308 alsomay be removable. For example, a removable hard drive may be used forpersistent storage 1308.

Communications unit 1310, in these illustrative examples, provides forcommunications with other data processing systems or devices. In theseillustrative examples, communications unit 1310 is a network interfacecard.

Input/output unit 1312 allows for input and output of data with otherdevices that may be connected to data processing system 1300. Forexample, input/output unit 1312 may provide a connection for user inputthrough a keyboard, a mouse, and/or some other suitable input device.Further, input/output unit 1312 may send output to a printer. Display1314 provides a mechanism to display information to a user.

Instructions for the operating system, applications, and/or programs maybe located in storage devices 1316, which are in communication withprocessor unit 1304 through communications framework 1302. The processesof the different embodiments may be performed by processor unit 1304using computer-implemented instructions, which may be located in amemory, such as memory 1306.

These instructions are referred to as program code, computer usableprogram code, or computer readable program code that may be read andexecuted by a processor in processor unit 1304. The program code in thedifferent embodiments may be embodied on different physical or computerreadable storage media, such as memory 1306 or persistent storage 1308.

Program code 1318 is located in a functional form on computer readablemedia 1320 that is selectively removable and may be loaded onto ortransmitted to data processing system 1300 for execution by processorunit 1304. Program code 1318 and computer readable media 1320 formcomputer program product 1322 in these illustrative examples. In oneexample, computer readable media 1320 may be computer readable storagemedia 1324 or computer readable signal media 1326.

In these illustrative examples, computer readable storage media 1324 isa physical or tangible storage device used to store program code 1318rather than a medium that propagates or transmits program code 1318.

Alternatively, program code 1318 may be transmitted to data processingsystem 1300 using computer readable signal media 1326. Computer readablesignal media 1326 may be, for example, a propagated data signalcontaining program code 1318. For example, computer readable signalmedia 1326 may be an electromagnetic signal, an optical signal, and/orany other suitable type of signal. These signals may be transmitted overcommunications channels, such as wireless communications channels,optical fiber cable, coaxial cable, a wire, and/or any other suitabletype of communications channel.

The different components illustrated for data processing system 1300 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to and/or in place of those illustrated for dataprocessing system 1300. Other components shown in FIG. 13 can be variedfrom the illustrative examples shown. The different embodiments may beimplemented using any hardware device or system capable of runningprogram code 1318.

Therefore, the present disclosure is not to be limited to the specificexamples illustrated and that modifications and other examples areintended to be included within the scope of the appended claims.Moreover, although the foregoing description and the associated drawingsdescribe examples of the present disclosure in the context of certainillustrative combinations of elements and/or functions, it should beappreciated that different combinations of elements and/or functions maybe provided by alternative implementations without departing from thescope of the appended claims. Accordingly, parenthetical referencenumerals in the appended claims are presented for illustrative purposesonly and are not intended to limit the scope of the claimed subjectmatter to the specific examples provided in the present disclosure.

What is claimed is:
 1. (canceled)
 2. A system comprising: a memorystoring instructions to be executed by one or more hardware processors;and one or more hardware processors configured to execute theinstructions stored in the memory, wherein the instructions, whenexecuted by the one or more hardware processors, cause the system to:receive a first document and a second document, each containing tabularfinancial data; in response to receiving a selection identifying aselected table from within the first document, extract data from theselected table; identify a previous version of the selected table withinthe second document, wherein the identification of the previous versionof the selected table is based on a matching algorithm that identifies amatch between one or more portions of the selected table and one or moreportions of the previous version of the selected table; and cause theprevious version of the selected table to be displayed on a graphicaluser interface of a computing device associated with a user of thesystem, wherein the previous version of the selected table is displayedseparately from the second document.
 3. The system of claim 2, whereinthe one or more hardware processors are further configured to extractdata from the previous version of the selected table from the seconddocument.
 4. The system of claim 2, wherein the match between one ormore portions of the selected table and one or more portions of theprevious version of the selected table is identified when a table nameof the selected table matches a table name of the previous version ofthe selected table.
 5. The system of claim 2, wherein the match betweenone or more portions of the selected table and one or more portions ofthe previous version of the selected table is identified when one ormore terms associated with rows of the selected table match one or moreterms associated with rows of the previous version of the selectedtable.
 6. The system of claim 2, wherein the match between one or moreportions of the selected table and one or more portions of the previousversion of the selected table is identified when one or more dataheaders associated with columns of the selected table match one or moredata headers associated with columns of the previous version of theselected table.
 7. The system of claim 2, wherein the one or morehardware processors are further configured to generate a time seriesoutput for the selected table using the previous version of the selectedtable.
 8. The system of claim 2, wherein the one or more hardwareprocessors are further configured to generate a user alert when a newdocument that contains data that is similar to data in the selectedtable is received by the system.
 9. The system of claim 2, wherein theone or more hardware processors are further configured to identifynon-matching rows between the selected table and the previous version ofthe selected table.
 10. The system of claim 2, wherein the one or morehardware processors are further configured to: generate a new table thatcombines the selected table with the previous version of the selectedtable, wherein the selected table and the previous version of theselected table are combined such that data is arranged in the new tablein chronological order by row; and export the new table in an outputdocument that has a standardized file type to the computing device foruse outside of the system, wherein the standardized file type isdifferent from a file type of the first document and the seconddocument.
 11. The system of claim 10, wherein the one or more hardwareprocessors are further configured to cause the new table to be displayedon the graphical user interface.
 12. A method comprising: receiving afirst document and a second document, each containing tabular financialdata; in response to receiving a selection identifying a selected tablefrom within the first document, extracting data from the selected table;identifying a previous version of the selected table within the seconddocument, wherein the identification of the previous version of theselected table is based on a matching algorithm that identifies a matchbetween one or more portions of the selected table and one or moreportions of the previous version of the selected table; and causing theprevious version of the selected table to be displayed on a graphicaluser interface of a computing device associated with a user of thesystem, wherein the previous version of the selected table is displayedseparately from the second document.
 13. The method of claim 12, furthercomprising extracting data from the previous version of the selectedtable from the second document.
 14. The method of claim 12, wherein thematch between one or more portions of the selected table and one or moreportions of the previous version of the selected table is identifiedwhen a table name of the selected table matches a table name of theprevious version of the selected table.
 15. The method of claim 12,wherein the match between one or more portions of the selected table andone or more portions of the previous version of the selected table isidentified when one or more terms associated with rows of the selectedtable match one or more terms associated with rows of the previousversion of the selected table.
 16. The method of claim 12, wherein thematch between one or more portions of the selected table and one or moreportions of the previous version of the selected table is identifiedwhen one or more data headers associated with columns of the selectedtable match one or more data headers associated with columns of theprevious version of the selected table.
 17. The method of claim 12,further comprising generating a time series output for the selectedtable using the previous version of the selected table.
 18. The methodof claim 12, further comprising generating a user alert when a newdocument that contains data that is similar to data in the selectedtable is received.
 19. The method of claim 12, further comprisingidentifying non-matching rows between the selected table and theprevious version of the selected table.
 20. The method of claim 12,further comprising: generating a new table that combines the selectedtable with the previous version of the selected table, wherein theselected table and the previous version of the selected table arecombined such that data is arranged in the new table in chronologicalorder by row; and exporting the new table in an output document that hasa standardized file type to the computing device for use outside of thesystem, wherein the standardized file type is different from a file typeof the first document and the second document.
 21. The system of claim20, further comprising causing the new table to be displayed on thegraphical user interface.